using UwinEducation.Domain.Entities;
using UwinEducation.Shared.Models;

namespace UwinEducation.Domain.IRepositories
{
    public interface ITermRepository : IRepository<Term, Guid>
    {
        /// <summary>
        /// 获取学期分页列表
        /// </summary>
        Task<PagedResult<Term>> GetPagedListAsync(TermPageRequest pageRequest);

        /// <summary>
        /// 获取学期详情
        /// </summary>
        Task<Term> GetDetailsByIdAsync(Guid id);

        /// <summary>
        /// 检查学期编号是否存在
        /// </summary>
        Task<bool> ExistsByNameAsync(string name, Guid? excludeId = null);
    }
}